package com.dys.othernewfeatures14;

/**
 * @className: com.dys.othernewfeatures14.AnnoTest01
 * @description: 配置多个可重复的注解
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/09/03 下午11:01
 */
@MyAnnotation("test01")
@MyAnnotation("test02")
@MyAnnotation("test03")
public class AnnoTest01 {

    @MyAnnotation("method01")
    @MyAnnotation("method02")
    public void test01() {
    }

    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) throws NoSuchMethodException {
        // 1.获取类中标注的重复注解
        MyAnnotation[] annotationsByType = AnnoTest01.class.getAnnotationsByType(MyAnnotation.class);
        for (MyAnnotation annotation : annotationsByType) {
            System.out.println(annotation.value());
        }

        // 2.获取方法上的重复注解
        MyAnnotation[] annotationsByType1 = AnnoTest01.class.getMethod("test01").getAnnotationsByType(MyAnnotation.class);
        for (MyAnnotation annotation : annotationsByType1) {
            System.out.println(annotation.value());
        }
    }
}
